perm filename F8T.SAI[ALS,ALS] blob sn#321376 filedate 1977-12-15 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "F8FILE"
C00015 ENDMK
C⊗;
BEGIN "F8FILE"

DEFINE ⊂="BEGIN",⊃="END",$="COMMENT";

INTEGER I,CHAN1,EOF;
STRING READX,READY,READZ;
BOOLEAN ER;

PROCEDURE HELP;
⊂	OUTSTR('15&'12&'11&"The F8 file transfer program"&'15&'12);
	OUTSTR   ("
	This program transfers data from a cassette on a TI terminal
	into a file on the PDP-10.
	Services  are:
		0. Exit.
		1. Open a new file.
		2. Start reading.
		3. Close file.
		4. Help! (repeat this message).
");
⊃	;

PROCEDURE ASK;
⊂	
CHAN1←1;
CLOSE (CHAN1);	OPEN (CHAN1,"DSK",0,0,2,0,0,EOF);
WHILE TRUE DO
  ⊂ OUTSTR ('11&"Type file name = ");  READX←INCHWL;
    LOOKUP (CHAN1,READX,ER);
    IF ER THEN DONE;
    OUTSTR ('11&"File already exists. Do you want to overwrite it? /Y or N/ ");
    READY←(INCHWL)[1 for 1];
    IF EQU(READY,"Y")∨EQU(READY,"y") THEN DONE;
  ⊃;
ENTER (CHAN1,READX,ER);
⊃;

PROCEDURE READ;
⊂
WHILE TRUE DO
  ⊂
    OUTSTR ('21);
    READX←INCHWL;
    IF EQU(READX,'3) THEN DONE;
    IF EQU(READX,"END END END") THEN DONE;
    IF EQU(READX,"end end end") THEN DONE;
    OUT(CHAN1,READX&'15&'12);
  ⊃;
OUTSTR ('11&"End of file has been reached.");
⊃;

PROCEDURE CLOSEF;
⊂
CLOSE(CHAN1);
OUTSTR ('11&"File has been closed.");
⊃;

$ Main program loop starts here;
	HELP;
	WHILE TRUE DO
 ⊂	OUTSTR('15&'12&'11&"Type number with CR = ");
	SETFORMAT (5,2);
	I←CVD(INCHWL);
	IF (I>5)∨(I≤0) THEN DONE;
	CASE I OF ⊂ ;ASK;READ;CLOSEF;HELP ⊃;
 ⊃ ;
CLOSE(CHAN1); RELEASE(CHAN1);
⊃ "F8FILE";
END;